package paneles;
import arreglos.ClienteArrayList;
import arreglos.ProductoArrayList;
import entidades.Cliente;
import entidades.Producto;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import principal.Principal;
import util.Utilitarios;


public class PanelConsultarProducto extends JPanel implements ActionListener {

	private JLabel lblAgregarProductoTitulo;
	// ///Datos del formulario

	private JLabel lblCodigo;
	private JLabel lblDescripcion;
	private JLabel lblPrecio;
	private JLabel lblCategoria;
	private JLabel lblUnidadMedida;
	private JLabel lblStock;


	private JTextField txtCodigo;
	private JTextField txtDescripcion;
	private JTextField txtPrecio;
	private JComboBox  cboCategoria;
	private JComboBox  cboUnidadMedida;
	private JTextField txtStock;
	

	private JButton btnConsultarProducto,btnCancelar;
	
	private JInternalFrame consultarProducto;

	public PanelConsultarProducto(Principal pAppletPrincipal,
			JInternalFrame pConsultarProducto) {

		this.consultarProducto = pConsultarProducto;

		lblAgregarProductoTitulo = new JLabel("Consultar producto", JLabel.CENTER);
		lblAgregarProductoTitulo.setBounds(0, 35, 500, 35);
		lblAgregarProductoTitulo.setForeground(Color.red);
		lblAgregarProductoTitulo.setOpaque(true);		
		lblAgregarProductoTitulo.setFont(new Font("Dialog", Font.BOLD, 18));
		this.add(lblAgregarProductoTitulo);


		lblCodigo = new JLabel("Codigo:", JLabel.RIGHT);
		lblCodigo.setBounds(0, 75, 210, 25);
		lblCodigo.setForeground(Color.red);
		lblCodigo.setOpaque(true);		
		lblCodigo.setFont(new Font("Dialog", Font.BOLD, 12));
		this.add(lblCodigo);
		
		lblDescripcion = new JLabel("Descripcion:", JLabel.RIGHT);
		lblDescripcion.setBounds(0,100, 210, 25);
		lblDescripcion.setForeground(Color.red);
		lblDescripcion.setOpaque(true);		
		lblDescripcion.setFont(new Font("Dialog", Font.BOLD, 12));
		this.add(lblDescripcion);

		

		lblPrecio = new JLabel("Precio:", JLabel.RIGHT);
		lblPrecio.setBounds(0,125, 210, 25);
		lblPrecio.setForeground(Color.red);
		lblPrecio.setOpaque(true);	
		lblPrecio.setFont(new Font("Dialog", Font.BOLD, 12));
		this.add(lblPrecio);

		lblStock = new JLabel("Stock:", JLabel.RIGHT);
		lblStock.setBounds(0, 150, 210, 25);
		lblStock.setForeground(Color.red);
		lblStock.setOpaque(true);
		lblStock.setFont(new Font("Dialog", Font.BOLD, 12));
		this.add(lblStock);

		lblCategoria = new JLabel("Categoria:",JLabel.RIGHT);
		lblCategoria.setBounds(0, 175, 210, 25);
		lblCategoria.setForeground(Color.red);
		lblCategoria.setOpaque(true);
		lblCategoria.setFont(new Font("Dialog", Font.BOLD, 12));
		this.add(lblCategoria);

		lblUnidadMedida = new JLabel("Unidad Medida:", JLabel.RIGHT);
		lblUnidadMedida.setBounds(0,200, 210, 25);
		lblUnidadMedida.setForeground(Color.red);
		lblUnidadMedida.setOpaque(true);
		lblUnidadMedida.setFont(new Font("Dialog", Font.BOLD, 12));
		this.add(lblUnidadMedida);

	
		txtCodigo = new JTextField();
		txtCodigo.setBounds(215,75, 100, 20);
		txtCodigo.setFont(new Font("Dialog", Font.BOLD, 12));
		this.add(txtCodigo);

		txtDescripcion = new JTextField();
		txtDescripcion.setBounds(215,100, 200, 20);
		txtDescripcion.setFont(new Font("Dialog", Font.BOLD, 12));
		txtDescripcion.setEnabled(false);
		this.add(txtDescripcion);

		txtPrecio = new JTextField();
		txtPrecio.setBounds(215, 125, 200, 20);
		txtPrecio.setFont(new Font("Dialog", Font.BOLD, 12));
		txtPrecio.setEnabled(false);
		this.add(txtPrecio);

		txtStock = new JTextField();
		txtStock.setBounds(215, 150, 200, 20);
		txtStock.setFont(new Font("Dialog", Font.BOLD, 12));
		txtStock.setEnabled(false);
		this.add(txtStock);

		cboCategoria = new JComboBox();
		cboCategoria.setBounds(215,175, 110, 25);
		cboCategoria.addItem("Carnes");
		cboCategoria.addItem("Embutidos");  
		cboCategoria.addItem("Pastas"); 
		cboCategoria.addItem("Productos de limpieza"); 
		cboCategoria.addItem("Lacteos"); 
		cboCategoria.addItem("Especias"); 
		cboCategoria.setEnabled(false);
		cboCategoria.addActionListener(this);
        this.add(cboCategoria);

        cboUnidadMedida = new JComboBox();
        cboUnidadMedida.setBounds(215,200, 110, 25);
        cboUnidadMedida.addItem("Unidad");
        cboUnidadMedida.addItem("Kilogramo");      
        cboUnidadMedida.addItem("Bolsa");   
        cboUnidadMedida.addItem("Caja");   
        cboUnidadMedida.setEnabled(false);
        cboUnidadMedida.addActionListener(this);
        this.add(cboUnidadMedida);

		
		
		btnConsultarProducto = new JButton("Buscar");
		btnConsultarProducto.setBounds(320,70, 90, 28);
		btnConsultarProducto.addActionListener(this);
		this.add(btnConsultarProducto);

	
	    btnCancelar = new JButton("Cancelar");
	    btnCancelar.setBounds(205, 225, 90, 30);
	    btnCancelar.addActionListener(this);
	    btnCancelar.setEnabled(false);
	    this.add(btnCancelar);
	}

	public void actionPerformed(ActionEvent e) {

		if (e.getSource() == btnConsultarProducto) {
			BuscarDatosProducto();
        }
        if (e.getSource() == btnCancelar) {

        	LimpiarDatos();
            txtCodigo.setEnabled(true);
            btnConsultarProducto.setEnabled(true);
            btnCancelar.setEnabled(false);
        }
	
	}

	private void LimpiarDatos() {		
		txtDescripcion.setText("");
		txtPrecio.setText("");
		cboCategoria.setSelectedIndex(0);
		cboUnidadMedida.setSelectedIndex(0);
		txtStock.setText("");
		txtDescripcion.requestFocus();		
	}

    private void BuscarDatosProducto() {
        Producto producto = null;
        ProductoArrayList productoArrayList = null;
        try {
            producto = new Producto();
            producto.setCodigo(Integer.valueOf(txtCodigo.getText().trim()));
            productoArrayList = new ProductoArrayList();
            producto = productoArrayList.BuscarDatosProductoPorCodigo(producto);
          
            if (producto.getCodigo()>0) {

                txtCodigo.setEnabled(false);
                btnConsultarProducto.setEnabled(false);
                btnCancelar.setEnabled(true);

                txtDescripcion.setText(producto.getDescripcion());
                txtPrecio.setText(String.valueOf(producto.getPrecio()));
                txtStock.setText(String.valueOf(producto.getStock()));               
                cboCategoria.setSelectedIndex(producto.getCategoria());
                cboUnidadMedida.setSelectedIndex(producto.getUnidadMedida());         


            } else {
                Utilitarios.MostrarMensajeAlerta(consultarProducto, "No se encontro ningun producto");
            }
        } catch (Exception ex) {
        }

    }


	
}
